Sorting device



y 1961 s. M. FILLEBROWN ETAL 2,985,864

SORTING DEVICE 3 Sheet INVENTORS STEPHEN M. fiLLnsRuNu Cr HIMARDP- Gunmen .82

Filed Dec. 29, 1955 :6 WW a. ken W y 1961 s. M. FILLEBROWN EI'AL 2,985,864

SORTING DEVICE Filed Dec. 29, 1955 3 Sheets-Sheet 2 INVENTOR5 STEPHEN M. Fmuammn fir Hum!) B Gunman 3r ATTORNfY y 1961 s. M. FILLEBROWN EIAL 2,985,864

sommc; DEVICE [9407; INVENTORS R in STEPHm M. fiLLEBmmu HnmnDP. Eumszn BY JTTORNEY 2,985,864 Patented May 23, 1961 ice SORTING DEVICE Filed Dec. 29, 1955, Ser. No. 556,128 22 Claims. (Cl. 340-1725) This invention relates to information handling systems, and more particularly to methods of and apparatus for sorting data into a predetermined sequence.

In many high speed information handling systems, serial storage devices are used to convey intelligence to and from the system, and it is necessary to arrange the data into some sequential form within the serial storage device for efiioient utilization of the high speed components. Sorting of data is well known in the art and several methods and devices have been developed for that purpose.

The string of two sorter, described in the copending application of Howard P. Guerber, Serial No. 427,167, filed May 3, 1954, and entitled Sorting Apparatus," since issued as Patent No. 2,935,732 on May 3, 1960, provides an efiicient and novel method for arranging data on a serial storage device, such as magnetic tape, into a sequence of desired order. The messages of data are placed alternately on two magnetic tapes which become the input tapes. The messages on the two input tapes are merged into ordered sequences on alternate output tapes, building up the sequences on each pass, by a factor of two. n successive passes the input tapes become output tapes and vice-versa. A raw tape will thus be completely sorted after a number of passes determined by the number of messages to be sorted.

It is an object of the or perforated tape.

Another object of this invention is to provide an improved sorting apparatus wherein only a portion of a message need be called upon as a basis for the sort.

An additional object of the present invention is to provide an improved electronic sorting apparatus which on the average, number of passes of sort necessary to arrange all of the information into order on one serial storage device.

to an output device. Messages are transferred in the closest possible order to one output device so long as there is an input message available that will maintain the desired sequential order. When no input message follows in sequential order, means are provided to initiate a new sequence on another output device by transferring the first input message in order of those currently being compared. On subsequent passes, the input messages are merged into successively longer sequences until all the messages are in a desired sequence on one output device. By this method, known as progressive sort, advantage is taken of sequences already in order, which occur frequently in random sequences, and which are even more prevalent in data typical of business operations.

In practicing the invention, multiple transducing heads at each tape station may be used as described in the copending application of Howard P. Guerber, entitled "Sorting Apparatus. Another system which described a suitable input and output tape system is disclosed in the application, Serial No. 419,226, filed March 29, 1954, by Joel N. Smith and William R. Ayres, entitled Message Spacing Control System, since issued as Patent No. 2,907,002 on September 29, 1959, and assigned to the assignee of the present invention.

Multiple head tape stations, although most convenient, are not necessary in progressive sort according to the present invention in its broader aspects. However, it is desirable to present only the sort zone, or order determining portion of a message, to the sorter and yet be able to transfer an entire message from the read head of the input tape to the write head of the output tape unit. One possible expedient for thus handling the entire message by a sort zone criterion is to stop the tape after reading the sort zone and then back the tape to the start of the message. This expedient is slow, however. A second method might use a large message-size memory in conjunction with each tape unit to store an entire message. A magnetic drum or an endless tape loop could be used as such a memory.

The novel features of the invention as well as the invention itself both as to organization and method of Fig. 1 is a diagram of a sorter according to the present invention;

Fig. 2 is a partial diagram of a tape selector and control unit of Fig. 1;

Fig. 3 is a diagram of certain End of Data circuits of a tape selector and control unit of Fig. 1;

Fig. 4 is a diagram of a start message counter of Fig. I;

Fig. 5 is a diagram of tape selection flip-flops which may receive the output of a tape selector and control unit of Fig. 2; and

Fig. 6 is a diagram of circuitry modifying a sorter of the first pass of a sort.

The components that transmit the signals representing the characters of the nel units.

accordingly the circuits are not dupli- However, the recognition gate, counter,

the circuit, as shown in the accompanying figures. Conventional or gates and and gates are known in the art which will operate compatibly in a system which uses either electrical pulses or DC. voltage levels as the means of presenting signals. For simplicity in presentation, many or and "and gates are designated by reference characters and all of the amplifiers, pulse transformers, and one-shots which may be used to achieve uniformity in signals and circuit elements have been omitted.

In the circuits of Fig. l the input messages are recorded on A and B input tapes 10, 10. The output of the system is placed on C and D tapes 12, 12. A motion detector 15, such as that described in the copending application of Ralph E. Montijo, Jr., Serial No. 528,418, now abandoned, filed August 15, 1955, entitled A Web Motion Sensing Device, and assigned to the assignce of the present invention, may be placed at each tape station to provide signals that the particular tape is running (A Rng, B Rng, etc.). The tape stations when used with A and B input tapes 10, have respective a heads 14, 14' and respective B heads 16, 16'. The a heads 14, 14 are connected through an a or gate 18 to a recognition gate 20 such as described in the patent to Ayres, 2,648,829, issued August 11, 1953, and a criterion selector 22 such as that described in a copending application of L. A. Fernandez Rivas, Serial No. 431,627, filed May 24, 1954, entitled Data Selection Device, since issued as Patent No. 2,926,337 on February 23, 1960.

The criterion selector 22 output is connected to one input of each of two three-input criterion-register and" gates 24, 24', which have respective second inputs connected to the A Rng and B Rng signal sources 15, respectively. A third input to the criterion-register and" gates 24, 24' is a first timing pulse TP-1. A source of timing pulses, not shown, is connected with the character recognition circuitry and provides a series of timing pulses, TP-l, TP-2, TP-3, etc., in response to each character recognized and statisticized.

Two input register or" gates 26, 26 terion-register and" gates 24, 24', register, the A register 28 and to further register, the 13" register 28'. Second inputs to the register or" gates 26, 26 receive the outputs of memory-register and gates 36, 36' described below. The outputs of the registers 2-8, 28' are directed into two-input register-memory "and gates 30, 30', respectively, and to two-input register-comparator and gates 32, 32', respectively. The second input to the register-memory and gates 30, 30', is a fourth timing pulse, TP-4. The second input to the register-comparator and" gates 32, 32', is a third timing pulse, T'P-3.

The output of the A register-memory and gate 30 is applied to a memory unit, the A memory 34, and the output of the B register-memory and gate 30' is applied to a further memory, the B memory 34'. The A memory 34 output is applied to a three-input memory-register and" gate 36 mentioned above and is further applied to a three-input AZ register and gate 38 whose output is applied to a two-input Z reg ister or gate 40 and thence to a further register, the Z register 42. Similarly, the B memory 34 output is applied to a three-input memory-register and gate 36' mentioned above and to a three-input BZ register and gate 38' which provides the second input to the Z register or gate 40 and therefore the Z register 42. The memory-register and" gates 36, 36', are further enabled by the second timing pulse, TP-2, and by the B Rng and A Rng signals, respectively. The Z register and" gates 38, 38' receive enabling inputs from. the A Rng and B Rng sources, respectively, and the timing pulse, TP-2.

The output of the Z register 42 connects to a twoinput Z comparator "and gate 44 which provides an input to a comparator, the AZ comparator 46 and a further comparator, the BZ comparator 46'. The third timing pulse, TP-3, enables the Z comparator and gate 44. The output of the A register-comparator and gate 32 provides a second input to the AZ comparator 46 and similarly the B register-comparator and gate 32' provides a second input to the BZ comparator 46'. The outputs of the register-comparator and gates 32, 32' also provide the inputs to another comparator, the AB comparator 48. The multiple outputs of the three comparators, 46, 46, 48, connect to a tape selector and control unit 50. The tape selector and control unit 50 provides selection signals to input tape drive mechanisms 52, 52' of the input units 10, 10', respectively, and output tape drive mechconnect the crirespectively, to a anisms 54, 54' of the output units 12 and 12, respectively. The messages read at the input tape 3 heads 16, 16 pass through two-input l8 and" gates 56, 56' which are connected through a two-input B or" gate 58 to two-input write and gates 60, 60' and then to write heads 61, 61' of the output tape stations 12, 12', respectively. The second inputs to the p and" gates 56, 56' are, respectively, A Rng and B Rn'g. Similar tape running signals from the respective tape stations acti vate the write an gates 60, 60'.

Start Message character signals are detected in the recognition gate 20, which is connected to the SM counter 63 which, in turn, provides signals S1, S2, and S3 on multiple output line 64. Signals S1, S2, and S3 and their origination are more fully described in connection with Fig. 4. The Start Message counter 63 is reset by a start button 66 which initiates the sorting process. Within the recognition gate 20 an End Data recognizer provides a signal on output line 72 which provides ED signals to the End Data circuits within the tape selector and control unit 50, to be more fully described in connection with Fig. 3. The recognition gate 20 applies other signals indicative of special characters to the criterion selector 22 so that the criterion portion of the message may be chosen from the sort zone and gated intothe system. The write and gates 60, 60' are enabled by the signals C Rng and D Rng, respectively. Erase heads 70, 70', are located at the output tape stations 12, 12', to prepare the output tapes for the messages to be written thereon.

In the arrangement of Fig. 2, the results of the comparisons are combined according to the rules of progressive sort set out in Table I below using combinations of or" and "an gates to produce the outputs necessary to select the proper input and output tapes to run. A comparator, such as that shown in the copending application for patent, Serial No. 438,372, filed June 22, 1954, by Grant W. Booth and Linder C. Hobbs, entitled Multiple Message Comparator," since issued as Patent No. 2,865,567 on December 23, 1958, compares three messages and has means to statisticize the results of the comparison, providing a signal in the form of a positive going pulse only on that output line representing the proper result, greater than," equal to, or less than." Such result presenting lines are labelled according to the comparison result, for example, A B, A=B, A B, A Z, A=Z, A Z, B Z, 8:2, and B Z. The diagram of Fig. 2 represents the portion of the Tape Selector and Control block 50 of Fig. 1 that mechanizes the rules for a progressive sort in ascending order.

The outputs of the AZ comparator 46, the B Z comparator 46' and the AB comparator 48 are combined within the tape selector and control unit 50. The A B output and A=B output of the AB comparator 48 provide inputs to an a" "or gate 110, whose output is applied to a four-input first and gate 112. and to a 15" or" gate 114. The A Z and 11:2 outputs of the AZ comparator 46 are combined at a c" or" gate 116, whose output leads to a d or" gate 118, the b or" gate 114, and an e or gate 120. The output of the b or" gate 114 provides one input to a four-input second and" gate 122. The S2 signal is applied to the second input of the d or" gate 118, the output of which goes to a second input of the first *and" gate 112. A third input of the first and gate 112 is an inhibitory input connected to the S1 output of the SM counter 63.

A fourth input to the first an gate 112 comes from the output, EDA(0), of the reset side of the End of Data A flip-flop 123, more fully described in connection with Fig. 3. EDA(0) also primes a second input of the second and" gate 122. A third input to the secend an gate 12.2 comes from the B Z output of the BZ comparator 46 and a fourth input receives the S3 signal. The output of the first and second a gates 112, 122, provide separate inputs to a three-input A or gate 124 which provides an output to tape selection statisticizers of Fig. 5. A third input of the A or gate 124 comes from the set side output EDB(1) of the End Data B flip-flop 123' of Fig. 3.

The B Z and B=Z outputs from the B-Z comparator 46' provide the inputs to an or gate 128, the output of which is applied to the e or gate 120 and to a four-input third and gate 130. A g or gate 132 receives the A Z output of the AZ comparator 46 and the A B output of the A-B comparator 48. The output of the g" or" gate 132 primes a second input of the third and gate 130. A third input of the third "an gate 130 comes from the reset side output, EDB(), of the EDB flip-flop 123', and a fourth input is an inhibit input connected to the S2 signal source.

The A B output of the A-B comparator 48 is further applied to one input of a three-input fourth and gate 134. A second input of the fourth and gate 134 receives the EDB(0) signal and a third input is connected to the output of an or gate 136, to which is applied the A Z output of the A-Z comparator 46 and the 82 signal. The outputs of the third and fourth and gates 130, 134, each energize a separate input of a four-input B or gate 138 which provides a signal to the selector statisticizers of Fig. 5. EDA(1) provides a third input to the B or" gate 138. A fourth input to the B or" gate is the output of an eleventh and A three-input C or" gate 140 provides an output to the selector statisticizers. One input of the C or gate 140 is provided by the S2 signal. Another input is the output of a two-input fifth and gate 142, the inputs of which are EDB(1) and S1. A third to the output of an eighth and" gate 154, described below.

The output of the e or gate 120 primes one input of a two-input sixth and" gate 144 which is enabled by a C Rng signal. The output of the sixth and gate 144 goes to one input of a two-input i or gate 146, the other input of which is the output of a three-input seventh and gate 148. The seventh and" gate 148 is energized by D Rng, the output of a two-input 1' or gate 150, and the output of a two-input k or" gate 152. The f "or gate 150 is energized by the B Z output of the BZ comparator 46' and EDB(1). The A Z output of the AZ comparator 46 connects to one input of the k or gate 152, the other input being EDA(1). The output of the r'" or gate 146 is applied to one input of the two-input eighth and gate 154 whose second input is an inhibit input receiving the S1 signal.

The selection of the D output tape 12' is made in response to the output of a two-input D or" gate 156. The outputs of a three-input ninth and gate 158 and a four-input tenth and gate 160 energize the D or gate 156. The inputs to the ninth and gate 158 are D Rng, the output of the e or gate 120, and the S3 signal. The tenth and" gate 160 inputs are the S3 signal, the output of the k or" gate 152, the output of the i or" gate 150, and C Rng.

In the diagram of Fig. 3, the End Data recognizer of the recognition gate 20 of Fig. 1 produces an output on line 72 which is connected to the End Data portion of the tape selector and control unit 50. The ED line 72 is applied to two-input EDA and EDB and gates 126, 126. The EDA and gate 126 is enabled by A Rng and is connected to the set terminal of the EDA flip-flop 123. Similarly, the EDB and gate 126 is enabled by B Rng and is connected to the set terminal of the EDB flip-flop 123'.

An End Data signal detected by the recognition gate 20 is transmitted to the proper ED flip-flop 123, 123' by line 72 through the enabled one of the ED and" gates, 126, 126'. The ED flip-flops 123, 123 are reset by the Start signal, coming either from the start button 66 or from a tape parts of the tape selector and control unit 50 via an FP or" gate 164 which transmits either the FP signal or the EDB(1) signal from the set side of the EDB flip-flop 123'.

In the circuit of Fig. 4, an SM counter 63 is shown in greater detail. The output of the SM counter 63 is transmitted on the three lines S1, S2, and S3 combined in the multiple line 64 (Figure 1) and originates in a four value binary counter 62 containing a reset terminal 74 and a trigger terminal 76. The trigger terminal 76 is connected to the output of an SM or gate 67, one input of which is the output of an SM and" gate 68. The other input of the SM or" gate 67 is the output of an FP and gate 78. The SM and gate 68 is enabled by a clocking input, TP-2, an SM input from the recognition gate 20, and the absence of the S3 signal on an inhibit input. The counter 62, ordinarily reset to zero at every fourth count, is disabled after the third count by the S3 signal at the inhibit input of the gate 68, blocking all subsequent SM pulses.

For the instance of the first pass, when the second SM is detected, the FP and gate 78 receives input signals FP, SM, S1, and TP-l. At TPl, the output of the PP and gate 78 triggers the counter 62 through the SM or" gate 67. At TP-2, the SM pulse coming from the enabled SM and" gate 68 again triggers the counter 62, advancing the count to S3, thereby skipping the S2 count during the first pass.

In the diagram of Fig. 5 the outputs of the A, B, C, and D tape selection or gates 124, 138, 140, 156, are connected to the set side inputs of the A, B, C, and D flip-flops 168, 170, 172, 174, respectively, which statisticize the selection of a tape. The four flip-flops 168, 170, 172, 174 are reset by an tion gate 20, and therefore reset each time a new message is clocked into the system. The statisticizers provide the tape selection signals A(l), B(1), the tape stations, which might be the Start signals to a suitable tape drive mechanism as shown in the copending Guerber application, mentioned above.

In the circuit of Fig. 6, a switch 162 is connected to the set side of an FP flip-flop 80 which, when set, provides the FP output. The reset terminal of the FP flipflop 80, is connected to the EDA(1) output of the EDA In the tables, A is the criterion of the the input tape A," B is the criand Z is the criterion of the mesan output tape.

Table I.Ascending order Table IL-Descending order ZAAEB Transfer A to same tape as Z ZEB A Transfer B to same tape A ZEB Transfer B to same tape B ZEA Transfer A to same tape AEB Z Transfer A to new tape B A Z Transfer B to new tape A data precessing machine mechanizing the above tables progressive sort. message entering from terion from tape B, sage last transferred to of rules must perform certain operation As each message enters the system, its criterion must be located and compared with the criterion of the message previously entered from the other input tape and with that of the message last transferred to an output tape. A decision based on the comparisons must be made as to which of the input messages should be transferred and to which output tape that message must go. Progressive sorting has been treated in the publication entitled A High Speed Tape Sorter, a MS. thesis by Howard P. Guerber, and deposited in the library of the University of Colorado, January 1, 1955.

In one embodiment, the sorting criterion is located within the space occupied by the first fifty characters of a message, which space may be termed the sort zone" of the message and which may contain any lesser number of characters depending upon the type of messages to be sorted. Means are shown in the above-mentioned Booth and Hobbs application which will compare signals representing either numbers or words in the criterion. The results of the comparison are sent to a tape selection and control unit which provides signals to activate the proper input and output tape devices. The system may contain the elements or means which generate proper spacing between successive messages shown and described in the above-mentioned Smith, Ayres Message Spacing Control System" application.

To perform an ascending order sorting operation according to the progressive sort technique of the present invention, the raw, unorganized data are placed on a reel of magnetic tape at the A tape station 10. The first pass switch 162 is closed, setting the FP flip-flop 80. The FP signal is passed by the FF or" gate 164 to provide a high level at all inputs normally receiving EDB(1) providing thereby an artificial EDB(1) for the B tape 10' which is not used during the first pass of sort. The Start A button 66 is pressed, resetting the SM counter 63 and the EDA and EDB flip-flops 123, 123'. The Start A button 66 also starts the A tape drive mechanism 52. The a head 14 of the A tape 10 reads the sort zone of the first message on the A tape 10. The recognition gate detects the first Start Message symbol and the Start Message counter 63 is triggered, providing an S1 output.

The criterion selector 22 is closed until a preset number of special item separator symbols have been detected by the recognition gate 20, locating the criterion of the message. As each character is detected by the a head, a series of time pulses, TP-l to TP-4 is generated. The A criterion-register and" gate 24 is enabled by A Rng from the motion detector 15 on one input and, as each character is presented from the criterion selector 22, the first time pulse, TP-l, clocks the character through the A criterion-register or gate 26 into the A register 28 where the character is statisticized. It may be seen that multiple parallel gates are necessary to handle a multibit character and the description herein will refer to the several channels as a single channel. The second timing pulse, TP-2, primes the A memory register and gate 36 which is disabled in the absence of B Rng. At the third timing pulse, TP-3, the character in the A register 28 is clocked through the A register-comparator and" gate 32 into the A-Z comparator 46 and the A--B comparator 48. At this time, there is neither a valid B message nor a valid Z message with which the A message may be compared. The logic of the circuits of Fig. 2 is such that the results of these comparisons are eliectively ignored. The fourth timing pulse, TP-4, clocks the character in the A register 28 through the A registermemory and gate into the A memory 34. The process is repeated for each character in the criterion of the first message of the A tape 10 until the entire criterion is included in the A memory 34. The artificial EDB(1) level from the FF or gate 164 at one input of the fifth and" gate 142 combined with the S1 output of the SM counter 63 enable the fifth and" gate 142. The C "or" gate provides a starting signal which provides a selection signal C(l) to start the C tape 12. The signal EDB(1) at the third input of the A or gate 124 provides a signal to the A flip-flop 168 to continue running tape A 10 after the sort zone has been passed. There is no B input tape and the A tape 10 continues to run. The 3 head 16 reads the entire first message which goes through the open A p and gate 56 and through the 5 or gate 58 to the output. The C write and gate 60 is enabled by C Rng and the message is written by the write head 61 on the C output tape 12.

While the {3 head 16 is reading the first message, the second message of the A tape 10 is read by the a head 14 and a second Start Message is detected at the recognition gate 20. The SM pulse and TP-l pass the F? and" gate 78 and trigger the counter 62 to S2. At TP-2 the SM pulse again triggers the counter 62 to S3, efiectively skipping S2 on the first pass. The criterion selector 22 provides the criterion of a second message which is clocked through the criterion-register and gate 24 into the A register 28, character by character with each TP-l. The second timing pulse, TP-2, clocks the criterion of the first message transferred to an output tape, which is held in the A memory 34, through the Z register and" gate 38 into the Z register 42 character by character. At the occurrence of TP-3, the characters of the criterion of the second message are clocked character by character through the A register-comparator gate 32 into both the A--Z comparator 46 and the A-B comparator 48. TP-3 also clocks the characters in the Z register 42 through the Z comparator "and gate 44 into both the A--Z comparator 46 and the B-Z comparator 46. The result of this comparison, A 2," A Z," or A=Z is sent to the tape selector and control unit 50. If A -Z, the output of the c or gate 116 goes through the e" or" gate 120 to the sixth an gate 144 which is enabled by C Rng. The signal continues through the i or gate 146 and the enabled eighth and" gate 154 to the C or gate 140, continuing the selection of C. If A Z, the signal passes the k" or gate 152 and is applied to the tenth and" gate 160 which is en abled by S3 and C Rng. The output of the tenth gate 160 goes to the D or gate 156, selecting D. While the second message is being transferred to an output tape, the third message is detected at the a head 14. Suecessive messages from the A tape 10 are transferred to the C or D tape 12, 12', according to whether AEZ or A Z and which output tape is running at the time of the decision. If the final result of an A-Z comparison is Akl, and the D tape is running, an output from the "c" or gate 116 goes through the e" or" gate 120 to both the sixth and" gate 144 which is closed, and the ninth and gate 158, which is enabled by D Rng and S3. The output of the ninth and" gate 158 is applied to the D or gate 156 and tape D continues to run. If, however, the comparison results in A Z the signal appears through the k or gate 152 and goes to inputs of both the seventh and gate 148 and the tenth and" gate 160. As the D tape is running, the seventh and gate 148 is enabled by D Rng and the tenth and gate 160 is closed in the absence of C Rng. A third input of the seventh and gate 148 is primed by EDB(1) through the i or gate and the message output is switched to tape C 12, from tape D 12'.

All subsequent comparisons of the remaining messages on the A tape 10 will cause the messages to be transferred either to the C output tape 12 or the D output tape 12'. When it appears that the input message is less than the message previously transferred, the outputs are switched and a new string is started.

At the end of each pass, means, not shown, are available to rewind the tapes and interconnect the tape stations so that the output tapes for the one pass become the input tapes for the next pass. When the interchange 9 is completed a signal is generated which starts the A tape 10.

For succeeding passes of sort, other than the first, the Start A signal is presented, either by the start button 66 or by the switching circuits, not shown. The F? flip-flop 80, reset by the EDA(1) signal remains reset, the EDA and EDB flip-flops 123, 123' are reset, and the SM counter 63 is also reset.

The first message is read by the A a head 14 and the Start Message is recognized at the recognition gate 20. The SM counter 63 is advanced to S1 and the tape selection flip-flops 168, 170, 172, 174 are all reset. Each character of the criterion of the A message is clocked through the A register 28 at TP-l and into the A memory 34 at TF4. The first and gate 112 is inhibited by the S1 signal, the second and gate 122 is disabled in the absence of the S3 signal, and the output of the BBB flip-flop 123' is EDB(), resulting in low levels at each of the three inputs of the A or" gate 124. Without a selection signal A(1), tape A is stopped.

The combination of EDB(0) and S1 energizes the eleventh and gate 166 providing a signal to the B or gate 138, selecting tape B 10'. The B tape 10' is started and the first message is read by the a head 14 and passed through the or. or gate 18 to the recognition gate 20 and the criterion selector 22. The SM symbol is recognized and the SM counter 63 is advanced to S2. The criterion is selected, and the B criterion-register and gate 24' is opened. Each character of the B criterion is clocked through the B register or gate 26 into the B register 28' with each TP-l. With the B tape running, the A memory and gate 36 is open and characters are clocked from the A memory 34- into the A register 28 with each TP-2. At PP-3 the characters in the A register 28 and B register 28' are clocked through their respective register-comparator and gates 32, 32' into the AB comparator 48 where a comparison is made which determines which input tape is to run. The characters of the criterion of the messages are then clocked into the respective memories 34, 34' at TP-4.

If BEA the a or gate 110 provides an output to the first and" gate 112 which is enabled by EDA( 0), the output of the d or gate 118 providing the S2 signal, and a high level on the inhibit input in the absence of S1. The first and gate 112 signals the A or gate 124, selecting tape A. If A B, a signal will be passed by the four and" gate 134 which is primed by an S2 signal through the or gate 136, and EDB(0). The output of the fourth and gate 134, through the B or" gate 138, selects tape B. The S2 signal energizes the C or gate 140 in either event. The first message of any pass is always transferred to the C tape.

As a message is transferred to an output tape, a second message is read in by the a head 14, 14' of the running input tape 10, 10'. The Start Message character is recognized and the Start Message counter 63 advances, providing a high level to the S3 output. Assuming, for example, that the A tape 10 is transferring a message, then the second A message criterion is clocked into the A register 28. At TP-2 the first character of the criterion of the previous A message is circulated from the A memory 34 into the Z register 42. At the same time, TP-2, the B memory 34' circulates its contents, one character at a time, into the B register 28'. At TP-3 the contents of the three registers 28, 28', 42 are clocked into the AZ comparator 46, the BZ comparator 46' and the AB comparator 48. The results of the comparisons are sent to the tape selector and control unit 50.

Based on the three comparisons, either the A or B tape will be selected to transfer a message to the C or D tape according to the rules of progressive sort. For example, if 32A, and A22, there is an output from the a or gate 110 and the 0" or" gate 116. The first "and" gate 112 now enabled by the absence of S1, the output of the d or gate 118, and EDA(0), provides an output to the A or" gate 124. A signal from the A "or" gate 124 sets the A flip-flop 168 and the A tape 10 is selected to run. The output of the c or" gate 116 is passed by the e or" gate 120 and is applied to one input of the sixth and" gate 144. As the C tape is running, C Rng applied to the other input enables the sixth and gate 144 and the output passes through the i" or" gate 146 and the eighth and gate 154, which is also enabled in the absence of an S1 signal. The output of the eighth and gate 154 goes to the C or" gate 140, setting the C flip-flop 172 which provides for the selection of tape C 12 as the output tape.

Similarly, if Z B and B A, then the a" or gate 110 provides a signal to the b or" gate 114 which enables one input of the second and gate 122. Z B, EDA(0), and S3 provide the necessary enabling signals on the other inputs and a signal passes through the A or" gate 124 to the A flip-flop 168 to select the A tape. At the same time the Z B signal is passed by the j or gate 150 to enable one input of the tenth and gate 160. The C tape 12 is running, receiving the previous A message, and the C Rng signal enables a second input of the tenth and gate 160. The result signal A Z is passed by the k or gate 152 to the third input and S3 enables the fourth input. A signal is applied to the D or" gate 156 and the D flip-fiop 172, selecting tape D 12' for the transfer. The remainder of the messages on the input tapes 10, 10' are transferred in similar fashion.

On each pass, the first message to be transferred goes to the C tape 12. Subsequent messages are transferred to an output tape as determined by the comparison and by the location of the preceding output message. The comparison results B Z and A Z cause a switching of output tapes. The B Z signal is transmitted through the j or gate 150, and enables inputs at the seventh and" gate 148 and the tenth "and" gate 160, as does A Z, through the k or" gate 152. After the first message has been transferred, the eighth and" gate 154 is enabled in the absence of the S1 signal and the tenth and" gate 160 is partially enabled by the S3 signal. Therefore, the output of the seventh and" gate 148 may pass through the i or gate 146 and the eighth and" gate 154 to the c or gate 140, and, similarly the output of the tenth and gate 160 goes to the D "or gate 156. The choice of the output tape depends on which tape is running. C Rng will enable the tenth "and" gate 160 and select the D tape 12. D Rng enables the seventh and gate 148 and selects the C tape 12.

In the transcription of data from input tapes to output tapes, circuits (not shown) may provide for the writing of the ED symbol on both of the output tapes just before rewinding and switching. When the ED symbol is detected on either of the input tapes, 10, 10', the set side output of the ED flip-flops 123, 123 provides an enabling signal, ED(1), to the input tape still containing data causing that tape to run regardless of the results of the AB comparison. In the case of End of Data on the B tape 10, the remaining messages on the A tape 10, are transferred as if it were the first pass. If the A tape 10 is exhausted, EDA(1) provides an enabling input at the B or" gate 138 and at the k" or gate 152 permitting the selection of an output tape as determined by the results of the B-Z comparison.

Thus a device has been shown for sorting messages rapidly and efliciently, taking advantage of any ordering which is present in the raw data and which may sort in an increasing or decreasing order by suitable arrangement of the comparison result inputs to the tape selector and control unit.

What is claimed is:

1. A sorter comprising: means for reading seriallypresented input messages, each of said messages having an order-determining portion; a pair of output devices; means for transferring each of said messages selectively to one of said output devices; first register means connected to receive each said portion as it is presented to said reading means; memory means connected to the out put of said first register means; second register means connected to receive the portion stored in said memory means as the next said portion is read by said reading means and fed to said first register means; means for comparing the outputs of said first and second register means; and means responsive to said comparing means for controlling said transfer means to enable the transfer of each of said messages, when presented, to said output devices selectively according to a progressive sort.

2. A sorter comprising means for reading one or more sets of serially presented input messages, each said message having an order determining portion, means for writing said messages selectively and serially into one or more output storage devices, means for comparing the said portion of a message last written by said writing means with said input message portions of any of said input messages as thus presented, and means responsive to said comparing means for enabling said writing means for next writing the one of said messages having their said portions thus compared by said comparing means which maintains the closest order of a desired order sequence into a first of said output devices so long as it is possible to maintain said desired order sequence on said first output device from said portions so compared and for activating said writing means for writing said one message into a different said output device when said order sequence may no longer be maintained on said first output device.

3. A sorter comprising means for reading one or more sets of serially presented input messages, each said message having an order determining portion, means for writing said messages selectively and serially into one or more output storage devices, means for comparing the said portion of a message last written by said writing means with said input message portions of any of said input messages as thus presented, and means responsive to said comparing means for enabling said writing means for next writing the one of said messages having their portions compared by said comparing means into a first said output storage device, each message following the preceding message in the closest possible order in a desired order sequence, so long as it is possible to maintain said desired order sequence of messages on said first output storage device, and means for enabling said writing means for writing said next one of said messages into a different one of said output storage devices when said order sequence may no longer be maintained on said first output storage device.

4. In an apparatus including at least three serial storage devices for sorting messages on one or more of said serial storage devices designated input devices into sequential groups on the remaining said serial storage devices designated output devices, the combination comprising transducing means connected to said input devices for converting said encoded messages into electrical signals representing characters of said messages, writing means connected to said transducing means and said output devices for transferring messages from said input to said output devices, interim storage means for storing those of the said message character signals representing a portion of a said message, means for comparing message portions of input messages and the message last transferred to a said output device including means to present the comparison results of greater than," equal to," or less than, and enabling means responsive to said comparison result presenting means for selectively enabling one of said input and one of said output devices, enabling either that input device containing the message most nearly following in a desired sequence said last transferred message in the desired sequence or that input device containing the initial message of a new sequence, and, where more than one output device, enabling the output device other than that last enabled if no input message follows in said desired sequence said last transferred message.

5. In an apparatus including at least three tape devices for sorting messages on one or more of said tape devices designated input tapes into sequential groups on the remaining said tape devices designated output tapes, the combination comprising reading means connected to said input tapes, writing means connected with the said read ing means for transferring messages from input to output tapes, interim storage means for storing message character signals representing order determining portions of said messages, comparing means for comparing the message said order determining portions of input messages and the message last transferred to an output tape including means to present the comparison results greater than," equal to, or less than, and enabling means responsive to said comparison result presenting means for selectively enabling one of said input and one of said output tapes, selecting either that input tape containing the message that, in a desired sequence, most nearly follows last transferred message, or that input tape containing the message which, as between said input messages, will start a new sequence, and, where more than one output tape, if no input message follows in said desired sequence, said last transferred message, selecting the tape other than the one last enabled.

6. In an apparatus for sorting messages encoded on one serial storage input device into one or more sequentially ordered groups on at least two serial storage output devices, the combination comprising transducing means connected to said input storage device for converting said encoded messages into electrical signals representing message characters, intermediate storage means connected to said transducing means for storing signals representing portions of said messages, comparing means for comparing the said message portion character signals of consecutive messages to determine if a preceding message is greater than, equal to, or less than the message immediately succeeding, enabling means responsive to said comparing means for selectively enabling one of said output storage devices according to the results of said comparison, enabling the said output storage device last enabled if the said succeeding input message follows said preceding input message in the desired sequence, and enabling the other of said output storage devices if said succeeding input message does not follow said preceding message in said desired sequence, and writing means connected to said transducing means for transferring encoded messages from said input serial storage device to the enabled one of said output serial storage devices.

7. In an apparatus for sorting messages encoded on one input tape into one or more sequentially ordered groups on at least two output tapes, the combination comprising first and second reading means connected to said input tape for converting said encoded messages into electrical signals representing message characters, message portion selecting means responsive to certain of said message character signals connected to said first reading means, intermediate storage means including connected register and memory means connected to said message portion selecting means for storing said selected portions of said messages, comparing means connected to said register means for comparing the said selected message portions of consecutive messages to determine if a preceding message is greater than, equal to, or less than the message immediately succeeding, tape selection means responsive to said comparing means for selectively enabling one of said output tapes according to the results of said comparison, enabling the one of said output tape last enabled if said succeeding input message follows said preceding input message in the desired sequence, and enabling the other of said output tapes if said succeeding input message does not follow said preceding message in said desired sequence, and writing means con nected to said second reading means for transferring 13 messages from said input tape to the enabled one of said output tapes.

8. In an apparatus for sorting messages on one or more input tape devices into sequential groups on one or more output tape devices, said sorting apparatus including not less than three tape devices, the combination comprising first and second reading means connected to said input tape devices for converting said encoded messages into electrical signals representing characters of said messages, writing means connected to said first reading means and said output tape devices for transferring messages from selected input to selected output devices, interim register and storage means including message portion selecting means connected to said second reading means and responsive to certain ones of said electrical message character signals for storing a selected portion of said messages, comparing means connected to said interim storage means for comparing message portions of input messages with each other and with the message portion of the message last transferred to a said output tape device including means to present the comparison results of greater than, equal to," or less than," and enabling means responsive to said comparison result presenting means for selectively enabling one of said input and one of said output tape devices, selecting either that input tape device containing the message most nearly following in a desired sequence said last transferred message or that input device containing the initial message of a new sequence; and, where more than one output tape device, selecting the one of said output tape devices other than the one last selected if no said input message follows in said desired order said last transferred message.

9. In an apparatus for sorting messages encoded on each of two serial storage input devices into one or more groups in a desired sequential order on at least two serial storage output devices, said messages having an order determining portion, the combination comprising transducing means connected to said input devices, writing means connected to said transducing means and said out put devices for transferring messages from enabled ones of said input devices to enabled ones of said output devices, interim message portion storage means connected to said transducing means, message order determining portion comparing means connected to said interim storage means for comparing the said portions of input messages with each other and with said portion of the message last transferred to any of said output devices, and means responsive to said comparing means for selectively enabling said input devices for the transfer of messages recorded thereon, and said output devices and said writing means connected therewith according to the following rules:

(1) If neither input message sequentially follows said last transferred message,

(a) Enable the said input device containing the sequentially preceding message, and

(b) Enable a said output device other than that receiving said last transferred message;

(2) If at least one input message sequentially follows the said last transferred message,

(a) Enable the said input device whose message most closely follows in said desired sequence said last transferred message, and

(b) Enable the said output device receiving said last transferred message.

10. In an apparatus for sorting messages encoded on each of two input tapes into one or more sequentially ordered groups on at least two output tapes, the combination comprising reading means connected to each of said input tapes for converting said encoded messages into electrical signals representing message characters, writing means connected to said reading means and to each of said output tapes for converting said character signals from enabled ones of said input tapes into encoded messages on enabled ones of said output tapes, interim storage means for storing those of the said character signals representing portions of said messages, comparing means connected to said interim storage means for comparing said message portions from each of said input tapes with each other and with a portion of the message last transferred to any of said output tapes, means for staticizing the comparison results, greater than, equal to, or less than, and enabling means responsive to said staticizing means for selectively enabling one of said input tapes to transfer its message to one of said output tapes according to the following rules: If neither of the input messages follows in a desired sequence said last transferred message, transfer the input message of lesser sequential order to the said output tape other than that which received the said last transferred message; if both said input messages follow in said desired sequence said last transferred message, transfer the message next in sequential order to the said output tape receiving said last transferred message; and if only one said input message follows in said desired sequence said last transferred message, transfer said following message to said output tape receiving said last transferred message.

11. In a sorting apparatus for ordering messages encoded on each of two input tapes into one or more sequential groups on at least two output tapes, the combination comprising first and second reading means connected to each of said input tapes; a plurality of separate interim register and storage means each connected to a separate one of said first reading means; further register means selectively connected to the one of said storage means connected with a currently enabled said input tape; comparing means connected to each of said interim register and storage means and to said further register means for comparing all currently available input messages with each other and with the message last transferred to a said output tape; tape selector and control means responsive to said comparing means for selectively enabling said input tapes and said output tapes as follows: (a) if at least one input message sequentially follows said last transferred message, enable the one of said input tapes containing the message most closely following in a desired sequence said last transferred message and the one of said output tapes containing said last transferred message, and (b) if no input message sequentially follows said last transferred message, enable the one of said input tapes containing the sequentially preceding message and a said output tape other than that receiving said last transferred message; and a separate writing means connected to each of said output tapes and further connected to each of said second reading means for transferring said messages from the enabled one of said input tapes to the enabled one of said output tapes.

12. In a sorter for sequentially ordering messages encoded on each of two input tapes into one or more groups of messages on each of two output tapes, said messages having an order determining portion, the combination comprising a separate first reading means connected to each of said input tapes, a separate first register means connected to each of said first reading means, interim storage means connected to each of said first register means for holding the signals representing the said order determining portion of input messages, a second register means connected to all of said interim storage means to receive the signals representing the characters of the said order determining portion of messages transferred to a said output tape, a first comparing means connected to said first register means, separate second comparing means connected to said second register means and to said first register means, a separate second reading means connected to each of said input tapes, writing means connected to each of said output tapes and said second reading means, and enabling means to selectively enable said input tapes, output tapes, and the reading and writing means connected therewith to transfer messages from input tapes to output tapes in response to signals from said comparing means selecting after each comparison: (1) the output tape receiving the last transferred message and the input tape containing the message most closely following in sequential order said last transferred message; and (2) a different output tape and the input tape containing the sequentially preceding one of said input messages if no input message follows in sequential order said message last transferred.

13. In an apparatus for sorting messages having an order determining portion and encoded on each of two serial storage input devices into one or more sequentially ordered groups of messages according to a desired sequencing of said order determining portions on at least two serial storage output devices the combination comprising a first reading means and a second reading means connected to each of said serial storage input devices for converting said encoding messages into electrical signals representing input message characters, portion selecting means connected to said first reading means being responsive to certain ones of said input message character signals for selecting said order determining portions of said input messages, interim storage means connected to said portion selecting means for storing said order determining portions, said interim storage means including separate input register means associated with each of said input devices, separate circulating storage means connected with each said input register means respectively to store the contents of the associated register means, output register means connected with said circulating storage means to store said order determining portion characters of a message last transferred to any of said output devices, input comparing means connected to said interim storage means, including means connected to the said input register means for comparing said order determining portions of all currently presented input messages with each other and means connected to the said input register means and the said output register means for comparing the order determining portions of said currently presented input messages with said message last transferred, means for staticizing the comparison results greater than, equal to, or less than, enabling means responsive to said staticizing means for selectively enabling one of said input devices to transfer its message to one of said output devices said enabling means selecting the one of said input devices whose message sequentially precedes the other of said input messages if all said input messages sequentially follow said message last transferred, in which event the one of said output devices receiving said message last transferred is selected, but if all messages sequentially precede said message last transferred, another of said output devices is selected except if one of said input messages sequentially follows said message last transferred, the one of said input devices containing the said following message is selected to transfer said following message to said one of said output devices, and writing means connected to said second reading means and to each of said output devices for effecting said message transfer between selected ones of said input and output devices.

14. in an apparatus for sorting messages having an order determining portion into a desired sequence according to said order determining portions of said messages, said messages being encoded on each of two input tapes, said desired sequences of one or more groups of messages being placed on at least two output tapes, the combination comprising a and 5 reading means connected to each of said input tapes, separate writing means connected to said 5 reading means and each of said output tapes, portion selecting means connected to said a reading means and responsive to certain signals representing characters of input messages, comparing means connected to said portion selecting means for comparing said order determining portions of currently presented said input messages with each other and with an order determining portion of the message last transferred to a said output tape, said comparing means including a separate register associated with each said input tape, a separate circulating memory connected to each of said registers and a further register connected to said memories to receive the said order determining portion of messages transferred to a said output tape, means for presenting results of comparisons, and enabling means responsive to said result presenting means for selectively enabling message transfers from a selected one of said input tapes to a selected one of said output tapes including means to enable, (1) the one of said input tapes containing the sequentially preceding one of the currently presented input messages and, (a) if both said input messages sequentially follow the message last transferred, the one of said output tapes receiving said message last transferred, (b) but, if neither said input message sequentially follows said message last transferred, the other of said output tapes, except, if one of said input message follows said message last transferred, (2) the one of said input tapes containing the said following message and said one of said output tapes.

15. In a sorting apparatus including at least three serial storage devices usable as input or output devices for sequentially ordering messages having an order determining portion and encoded on one or more of said storage devices into one or more sequential message groupings on the remaining said serial storage devices, said sequential groupings being determined by said order determining portions, each of said serial storage devices having a first and a second reading means and a writing means, said reading and writing means being alternatively enabled for input and output use, respectively, the combination comprising portion selecting means connected to said first reading means, said writing means being connected to said second reading means, comparing means connected to said portion selecting means, said comparing means including a separate register and circulating memory associated with each of said first reading means, a further register alternatively connected to said circulating memories for receiving said portions of input messages transferred to a said output device, means to staticize comparison results, and selection and control means responsive to said statieizing means for selectively enabling said serial storage devices, enabling the one of said remaining devices receiving the message last transferred, the one of said input devices containing that input message most closely following in desired sequence said last transferred message, but if none of said input messages sequentially follows said last transferred message, enabling another of said remaining devices and the one of said input devices containing the sequentially preceding message.

16. In an apparatus including at least three tape devices for sorting messages from one or more of said tape devices into groups of messages ordered in a desired sequence as output on the remaining said tape devices, said tape devices each having reading means including a first reading means, a second reading means, and a writing means, and further including means to connect the said second reading means of the ones of said tape devices used as input devices to the writing means of the said remaining tape devices used as output devices, the combination comprising, message portion selecting means connected to said first reading means and responsive to certain signals representing message characters to select portions of input messages, comparing means for determining sequential relationships among said input messages by comparing the said selected portions of said input messages among all currently presented said input tape messages and with the selected portion of the message last transferred to a said output tape device, said comparing means including separate register means responsive to each of said input devices, said comparing means being connected to said message portion selecting means, an interim circulating memory means connected wi 21 each of said register means for storing said selected message portion of currently presented input messages, a further register means connected to said memory means for receiving the said selected portion of messages transferred to a said output tape device, first comparing means connected to said separate register means for comparing said selected message portions of said currently presented input messages with each other, second comparing means connected to said separate register means and said further register means for comparing said selected message portion of said currently presented input messages with said selected message portion of said message last transferred, and result presenting means to signal the comparison results greater than, equal to, or less than, and tape selection and control means responsive to said companion results for selectively enabling one of said second reading means and one of said writing means and tape devices associated therewith to transfer that one of said input messages that most closely follows in a desired sequence said message last transferred to the output tape receiving said last transferred message, and, if none of said input messages sequentially follows said last transferred message, to transfer to a different output tape that one of said input messages which is the sequentially preceding.

17. In an apparatus for sorting messages encoded on each of two serial storage input devices into sequential groups on at least one serial storage output device, the combination comprising transducing means connected to said input devices for converting said encoded messages into electrical signals representing characters of said messages, intermediate storage means for receiving and storing character signals representing a portion of said messages, comparing means for comparing the said message portion character signals from said serial storage input device messages with each other and with the message portion character signals of the message last transferred to a said serial storage output device to determine the relationships of greater than, equal to, or less than as among the compared said message portion character sig nals, including means to staticize the comparison results, enabling means responsive to said staticizing means for selectively enabling one of said serial storage input devices, selecting one of said devices if its message follows in desired sequence said message last transferred, and the message on the other said input device either follows the message of said one input device in desired sequence or does not follow in desired sequence said message last transferred, and writing means connected to said transducing means for effecting transfer of said messages from enabled input devices to said output device.

18. A sorter comprising a plurality of means respectively for reading a like plurality of sets of messages, each of said sets having its messages presented in sequence to its corresponding reading means and each of said messages having an order determining portion, means for storing the order determining portion of each said message as said message is thus presented to its said corresponding reading means, means for selectively transferring said messages to an output device, means for storing the order determining portion of each said message as it is transferred by said transferring means, and comparing means for comparing said portions stored in said storing means and controlling the said transferring means to control selective transferring thereof to enable transfer of said messages according to a progressive sort.

19. A sorter comprising a first plurality of means for reading respectively a like plurality of sets of messages from a like plurality of input devices, the messages of each set being presented serially to its respective reading means and each of said messages having an order determining portion, means for transferring said messages successively and selectively from said input devices selectively into a number of output devices, a like plurality of storing means for storing said order determining portions of the said messages respectively of said reading means as thus serially presented thereto, a further storing means for storing the order determining portion of the message last transferred by said transferring means, and comparing means for comparing the said portions stored in said storing means and controlling the said transferring means to control the selective transferring thereof in accordance with a progressive sort.

20. A sorter comprising a plurality of means for reading selected portions of a like plurality of sets of serially presented messages, each of said messages having an order determining portion, means for writing said messages selectively into an output device, a like plurality of first register means respectively connected to said reading means each for successively registering said portions as presented of the messages of the corresponding set, a like plurality of memory means respectively connected to said first register means for storing said portions, a second register means connected to all of said memory means, comparing means connected to all of said register means for comparing said selected message portions of messages in said registers with each other and with a said portion registered in said second register means, and means responsive to said comparing means for selectively enabling transfer of an input message to an output device according to a progressive sort and registering in said second register said portion of the message being transferred.

21. A sorter comprising a plurality of means for reading a selected portion of a like plurality of corresponding sets of serially presented messages, means for writing said messages selectively into an output device, a like plurality of first register means connected respectively to said read ing means, a like plurality of memory means connected respectively to said first register means, second register means connected to all of said memory means, comparing means connected to all of said register means for comparing in pairs said selected message portions registered in said register means, and means responsive to said comparing means for selectively enabling transfer of an input message to an output device according to a progressive sort and for registering in said second register means the said selected portion of the message being transferred.

22. In an information handling system in which information is arranged in messages, said messages being represented by groups of signals in binary combination, each of said messages having an order determining portion, and said system being adapted to connect to a plurality of input storage devices at each of which said messages are presented sequentially, means for selectively transferring messages from one of said input storage devices to an output, means to control the selective transferring of messages by said transferring means comprising comparing means for connection with said storage device outputs to compare with each other said order determining portions of the messages last selected by said transferring means and said order determining portions of the messages as thus sequentially presented, said comparing means including signalling means to indicate the order of precedence of said order determining portions compared by said comparing means, and means controlling said transferring means in response to said signalling means in accordance with a progressive sort.

References Cited in the file of this patent UNITED STATES PATENTS 2,531,622 Hague Nov. 28, 1950 2,555,774 Wilson June 5, 1951 2,798,216 Goldberg July 2, 1957 2,865,567 Booth et a1. Dec. 23, 1958 UNITED STATES PATENT OFFICE CERTIFICATE OF CORRECTION Patent No, 2,985,864 May 23, 1961 Stephen M, Fillebrown et a1 It is hereby certified that error appears in the above numbered patent requiring correction and that the said Letters Patent should read as corrected below.

Column 2, line 49 for "of'fi second occurrence read for column 4 line 54 for "A B read A B column 6 line 75 for "'precessing" read processing column 9 line 47 for "four" read fourth column 17 line 18, for "companion" read comparison Signed and sealed this 24th day of October 1961.,

(SEAL) Attest:

ERNEST W. SWIDER DAVID L. LADD Attesting Officer Commissioner of Patents USCOMM-DC 

